package com.shop.cereshop.app.service.shop;

import com.shop.cereshop.app.domain.shop.ShopVO;
import com.shop.cereshop.app.param.shop.SearchShopParam;
import com.shop.cereshop.app.param.shop.SuggestShopParam;
import com.shop.cereshop.commons.domain.common.Page;
import com.shop.cereshop.commons.result.Result;

import java.util.List;

public interface PlatformShopV2Service {

    /**
     * 推荐店铺列表
     *
     * @param param 查询参数
     * @return 推荐店铺列表
     */
    Result<Page<ShopVO>> getSuggestShopList(SuggestShopParam param);

    /**
     * 搜索店铺列表
     *
     * @param param 查询参数
     * @return 店铺列表
     */
    Result<Page<ShopVO>> searchShopList(SearchShopParam param);

    /**
     * 查询店铺热榜列表
     *
     * @param cityCode 城市编码
     * @return 店铺热榜列表
     */
    Result<List<ShopVO>> shopHotList(String cityCode);

    /**
     * 获取店铺详情
     *
     * @param shopId 店铺ID
     * @param shopType 店铺类型
     * @param buyerUserId 当前用户ID
     * @param cityCode 城市编码
     * @return 店铺详情
     */
    ShopVO getShopDetail(Long shopId, Integer shopType, Long buyerUserId, String cityCode) throws Exception;

    /**
     * 获取用户收藏店铺列表
     *
     * @param param 店铺查询参数
     * @return 收藏店铺列表
     */
    Result<Page<ShopVO>> getCollectShopList(SearchShopParam param);

}
